今天直接大忘記qaq
翻了一下筆記決定寫跨元件資料傳遞的部分,直接看例子吧
將 <card-emit></card-emit>
中的資料傳遞到 <card-on></card-on>
中,流程如下:
<card-on></card-on>
<card-emit></card-emit>
<script type="module">
import 'https://unpkg.com/mitt/dist/mitt.umd.js' //import mitt
const emitter = mitt();
const app = Vue.createApp({});
app.component('card-emit',{
data(){
return {
product: {
name: 'pancake',
price: 100,
vegan: false,
},
}
},
methods: {
sendData(){
//emitter.emit(事件名稱, 要傳的參數)
emitter.emit('sendProduct', this.product);
}
},
template: `<div class="card">
<div class="card-body">
<button @click="sendData">送出</button>
</div>
</div>`
});
app.component('card-on',{
data(){
return {
item: {},
}
},
created() {
emitter.on('sendProduct', (data) => {
this.item = data;
});
},
template: `<div class="card">
<div class="card-body">
{{item}}
</div>
</div>`
})
</script>